package com.jintoufs.service.hotel;

import com.jintoufs.dao.QueryFilters;
import com.jintoufs.domain.constants.FullCalendar;
import com.jintoufs.domain.hotel.Hotel;
import com.jintoufs.domain.hotel.HotelPrice;
import com.jintoufs.domain.hotel.HotelRoom;

import java.util.List;
import java.util.Map;

public interface HotelRoomService {

    /**
     * 删除
     */
    void delete(String id);


    /**
     * 更新
     */
    void update(HotelRoom hotel);

    /**
     * 添加
     */
    HotelRoom add(HotelRoom hotel);

    /**
     * 根据参数查询
     */
    List<Map<String,Object>> queryByParams(Map<String, Object> params);
    /**
     * 根据参数查询
     * 用于基础信息查询
     */
    List<Map<String,Object>> selectByParams(Map<String, Object> params);
    /**
     * 根据条件查询
     * @param filters 属性列表，过滤存在的属性值
     */
    List<Map<String,Object>> getByFilter(QueryFilters filters);

    HotelRoom queryById(String id);

    List<FullCalendar> getPriceCalendar(Map<String,Object> param);
    List<Map<String,Object>> getPriceCalendar2(Map<String,Object> param);
    List<FullCalendar> getPriceCalendarForWeixin(Map<String,Object> param);

    HotelPrice selectByHotelPrice(HotelPrice hotelPrice);

    void updatePrice(HotelPrice hotelPrice);

    void savePrice(HotelPrice hotelPrice);

    void updateDate(String date);

    HotelPrice updateReserve(HotelPrice hotelPrice);

    int deleteByHotelId(String hotelId);

    HotelRoom selectById(String id);

    List<HotelPrice> getHotelPrice(Map<String,Object> param);

    Integer getMinReserve(String id,String startDate,String endDate);

    List<Map<String,Object>> queryPriceByParams(Map<String, Object> params);

}
